//地图
// 1=墙,2=箱子,3=空位,4=有箱子的空位,5=人
var arr = [
	[0,0,1,1,1,1,1,0,0],
	[0,0,1,0,5,0,1,0,0],
	[0,0,1,0,2,0,1,0,0],
	[1,1,1,0,3,0,1,1,1],
	[1,0,0,0,4,0,0,0,1],
	[1,0,4,4,4,4,4,0,1],
	[1,0,0,0,4,0,0,0,1],
	[1,1,0,2,4,2,0,1,1],
	[0,1,0,0,3,0,0,1,0],
	[0,1,0,0,4,0,0,1,0],
	[0,1,0,0,3,0,0,1,0],
	[0,1,1,1,1,1,1,1,0]
];
let x,y;
let tmpx;
let tmpy;
var a = false;
function falg(){
	for(let i=0;i<arr.length;i++){
		for(let j=0;j<arr[i].length;j++){
			if(arr[i][j]==2){
				
				return true;
			}
			
		}
	}
}
function getxy(){
	for(let i=0;i<arr.length;i++){
		for(let j=0;j<arr[i].length;j++){
			if(arr[i][j]==5){
				x=i;
				y=j;
				return;
			}
		}
	}
}
//建div
function creaE(e){
	var div = document.createElement("div");
	div.style.width = "50px";
	div.style.height="50px";
	switch(e){
		case 0:
		   div.style.background="white";
		break;
		case 1:
		   div.style.backgroundImage="url(./img/wall.jpg)";
		break;
		case 2:
		   div.style.backgroundImage="url(./img/box.png)";
		break;
		case 3:
		   div.style.background="pink";
		break;
		case 4:
		   div.style.backgroundImage="url(./img/over_box.png)";
		break;
		case 5:
		   div.style.backgroundImage="url(./img/player.png)";
		break;
	}
	return div;
}
//建地图
function tc(){
	var box = document.getElementById("box");
	box.innerHTML=" ";
	box.style.width=50*arr[0].length+"px";
	for(let i=0;i<arr.length;i++){
		for(let j=0;j<arr[i].length;j++){
			box.appendChild(creaE(arr[i][j]));
		}
	}
}
window.onload=function(){
	getxy();
	tc();
	falg();
	document.onkeydown = function(e){
		// console.log(e.keyCode)
		// 1=墙,2=箱子,3=空位,4=有箱子的空位,5=人
		switch(e.keyCode){
	        //上
			case 87:
// 			  arr[x-1][y]=5;
// 			  arr[x][y]=0;
// 			  x--;
			  if(arr[x-1][y]==0){
			  		arr[x-1][y]=5;
			  		arr[x][y]=0;
					if(a){
						arr[tmpx][tmpy]=3;
						a=false;
					}
			  		x--;
			  }else if(arr[x-1][y]==2&&arr[x-2][y]==0){
				    arr[x-2][y]=2;
			  		arr[x-1][y]=5;
			  		arr[x][y]=0;
			  		x--;
					if(a){
						arr[tmpx][tmpy]=3;
						a=false;
					}
			  }else if(arr[x-1][y]==2&&arr[x-2][y]==3){
				  arr[x-2][y]=4;
				  arr[x-1][y]=5;
				  arr[x][y]=0;
				  x--;
				  if(a){
				  	arr[tmpx][tmpy]=3;
				  	a=false;
				  }
			  }else if(arr[x-1][y]==4&&arr[x-2][y]==0){
				  arr[x-2][y]=2;
				  arr[x-1][y]=5;
				  arr[x][y]=0;
				  x--;
				    if(a){
				    	arr[tmpx][tmpy]=3;
				    	a=false;
				    }
				    a=true;
				    tmpx = x;
					tmpy=y;
				    
			  }else if(arr[x-1][y]==4&&arr[x-2][y]==3){
				 arr[x-2][y]=4;
				 arr[x-1][y]=5;
				 arr[x][y]=0;
				 x--;
				   if(a){
				   	arr[tmpx][tmpy]=3;
				   	a=false;
				   }
				   a=true;
				   tmpx = x;
				 					tmpy=y; 
			  }else if(arr[x-1][y]==3){
				    arr[x-1][y]=5;
			  		arr[x][y]=0;
			  		x--;
				    if(a){
				    	arr[tmpx][tmpy]=3;
				    	a=false;
				    }
				    a=true;
				    tmpx = x;
					tmpy=y;
			  		
					
			  }
            break;
			//下
			case 83:
// 				arr[x+1][y]=5;
// 				arr[x][y]=0;
// 				x++;
				if(arr[x+1][y]==0){
						arr[x+1][y]=5;
						arr[x][y]=0;
						if(a){
							arr[tmpx][tmpy]=3;
							a=false;
						}
						x++;
				}else if(arr[x+1][y]==2&&arr[x+2][y]==3){
					    arr[x+2][y]=4;
						arr[x+1][y]=5;
						arr[x][y]=0;
						x++;
						if(a){
							arr[tmpx][tmpy]=3;
							a=false;
						}
				}else if(arr[x+1][y]==2&&arr[x+2][y]==0){
					arr[x+2][y]=2;
					arr[x+1][y]=5;
					arr[x][y]=0;
					x++;
					if(a){
						arr[tmpx][tmpy]=3;
						a=false;
					}
				}else if(arr[x+1][y]==4&&arr[x+2][y]==0){
					arr[x+2][y]=2;
					arr[x+1][y]=5;
					arr[x][y]=0;
					x++;
					if(a){
						arr[tmpx][tmpy]=3;
						a=false;
					}
				    a=true;
				    tmpx = x;
					tmpy=y;
				    
					// alert(tmpx+" "+tmpy);
			  }else if(arr[x+1][y]==4&&arr[x+2][y]==3){
				  arr[x+2][y]=4;
				  arr[x+1][y]=5;
				  arr[x][y]=0;
				  x++;
				  if(a){
				  	arr[tmpx][tmpy]=3;
				  	a=false;
				  }
				  a=true;
				  tmpx = x;
				  tmpy=y;
			  }else if(arr[x+1][y]==3){
				    arr[x+1][y]=5;
			  		arr[x][y]=0;
			  		x++;
				    if(a){
				    	arr[tmpx][tmpy]=3;
				    	a=false;
				    }
				    a=true;
				    tmpx = x;
					tmpy=y;
			  		
					
			  }
			break;
			//左
			case 65:
			  if(arr[x][y-1]==0){
				  arr[x][y-1]=5;
				  arr[x][y]=0;
				   if(a){
					   arr[tmpx][tmpy]=3;
					   a=false;
				   }
				  y--;
			  }else if(arr[x][y-1]==2&&arr[x][y-2]==3){
				 arr[x][y-2]=4; 
				 arr[x][y-1]=5;
				 arr[x][y]=0; 
				 y--;
				 if(a){
				 	arr[tmpx][tmpy]=3;
				 	a=false;
				 }
			  }else if(arr[x][y-1]==2&&arr[x][y-2]==0){
				  arr[x][y-2]=2; 
				  arr[x][y-1]=5;
				  arr[x][y]=0; 
				  y--;
				  if(a){
				  	arr[tmpx][tmpy]=3;
				  	a=false;
				  }
			  }else if(arr[x][y-1]==4&&arr[x][y-2]==0){
				  arr[x][y-2]=2;
				  arr[x][y-1]=5;
				  arr[x][y]=0;
				  y--;
				    if(a){
				  	 arr[tmpx][tmpy]=3;
				  	 a=false;
				    }
				    a=true;
				    tmpx = x;
					tmpy=y;
			  }else if(arr[x][y-1]==4&&arr[x][y-2]==3){
				  arr[x][y-2]=4;
				  arr[x][y-1]=5;
				  arr[x][y]=0;
				  y--;
				    if(a){
				  	 arr[tmpx][tmpy]=3;
				  	 a=false;
				    }
				    a=true;
				    tmpx = x;
				  	tmpy=y;
			  }else if(arr[x][y-1]==3){
				    arr[x][y-1]=5;
			  		arr[x][y]=0;
					y--;
				    if(a){
				    	arr[tmpx][tmpy]=3;
				    	a=false;
				    }
				    a=true;
				    tmpy = y;
					tmpx=x;
			  		
			  		
					
			  }
// 			  arr[x][y-1]=5;
// 			  arr[x][y]=0;
			  // y--;
			break;
			//右
			case 68:
// 			  arr[x][y+1]=5;
// 			  arr[x][y]=0;
// 			  y++;
			  if(arr[x][y+1]==0){
			  		arr[x][y+1]=5;
			  		arr[x][y]=0;
					if(a){
						 arr[tmpx][tmpy]=3;
						 a=false;
					}
									  
			  		y++;
			  }else if(arr[x][y+1]==2&&arr[x][y+2]==0){
				    arr[x][y+2]=2;
			  		arr[x][y+1]=5;
			  		arr[x][y]=0;
			  		y++;
					if(a){
						arr[tmpx][tmpy]=3;
						a=false;
					}
			  }else if(arr[x][y+1]==2&&arr[x][y+2]==3){
				  arr[x][y+2]=4;
				  arr[x][y+1]=5;
				  arr[x][y]=0;
				  y++;
				  if(a){
				  	arr[tmpx][tmpy]=3;
				  	a=false;
				  }
			  }else if(arr[x][y+1]==4&&arr[x][y+2]==0){
				  arr[x][y+2]=2;
				  arr[x][y+1]=5;
				  arr[x][y]=0;
				  y++;
				  if(a){
				  	arr[tmpx][tmpy]=3;
				  	a=false;
				  }
				    a=true;
				    tmpx = x;
					tmpy=y;
			  }else if(arr[x][y+1]==4&&arr[x][y+2]==3){
				  arr[x][y+2]=4;
				  arr[x][y+1]=5;
				  arr[x][y]=0;
				  y++;
				  if(a){
				  	arr[tmpx][tmpy]=3;
				  	a=false;
				  }
				    a=true;
				    tmpx = x;
				  					tmpy=y;
			  }else if(arr[x][y+1]==3){
				    arr[x][y+1]=5;
			  		arr[x][y]=0;
					y++;
					if(a){
						// alert(tmpx+" "+tmpy);
						arr[tmpx][tmpy]=3;
						a=false;
					}
				    a=true;
				    tmpy = y;
					tmpx=x;
			  		
			  		
					
			  }
			break;
			
		}
		tc();
		setTimeout(function(){
			if(!falg()){
				alert("恭喜过关");
			}
		},200)
		
	}
	
}